
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGSkyBackground.h>
#include <OpenSG/OSGSkyBackgroundBase.h>
#include <OpenSG/OSGDrawAction.h>
#include <OpenSG/OSGViewport.h>
#include <OsgPtrHelpers.h>

// Using =======================================================================
using namespace boost::python;

// Declarations ================================================================
namespace  {

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_SkyBackground_dump_overloads_0_2, dump, 0, 2)


}// namespace 


// Module ======================================================================
void Export_src_pyste_gen_SkyBackground()
{
    scope* osg_SkyBackgroundBase_scope = new scope(
    class_< osg::SkyBackgroundBase, bases< osg::Background > , boost::noncopyable >("SkyBackgroundBase", no_init)
//        .def_readonly("SkyColorFieldMask", &osg::SkyBackgroundBase::SkyColorFieldMask)
//        .def_readonly("SkyAngleFieldMask", &osg::SkyBackgroundBase::SkyAngleFieldMask)
//        .def_readonly("GroundColorFieldMask", &osg::SkyBackgroundBase::GroundColorFieldMask)
//        .def_readonly("GroundAngleFieldMask", &osg::SkyBackgroundBase::GroundAngleFieldMask)
//        .def_readonly("SphereResFieldMask", &osg::SkyBackgroundBase::SphereResFieldMask)
//        .def_readonly("BackTextureFieldMask", &osg::SkyBackgroundBase::BackTextureFieldMask)
//        .def_readonly("BottomTextureFieldMask", &osg::SkyBackgroundBase::BottomTextureFieldMask)
//        .def_readonly("FrontTextureFieldMask", &osg::SkyBackgroundBase::FrontTextureFieldMask)
//        .def_readonly("LeftTextureFieldMask", &osg::SkyBackgroundBase::LeftTextureFieldMask)
//        .def_readonly("RightTextureFieldMask", &osg::SkyBackgroundBase::RightTextureFieldMask)
//        .def_readonly("TopTextureFieldMask", &osg::SkyBackgroundBase::TopTextureFieldMask)
//        .def_readonly("BoxInsideFieldMask", &osg::SkyBackgroundBase::BoxInsideFieldMask)
//        .def_readonly("TopTexCoordFieldMask", &osg::SkyBackgroundBase::TopTexCoordFieldMask)
//        .def_readonly("BottomTexCoordFieldMask", &osg::SkyBackgroundBase::BottomTexCoordFieldMask)
//        .def_readonly("RightTexCoordFieldMask", &osg::SkyBackgroundBase::RightTexCoordFieldMask)
//        .def_readonly("LeftTexCoordFieldMask", &osg::SkyBackgroundBase::LeftTexCoordFieldMask)
//        .def_readonly("FrontTexCoordFieldMask", &osg::SkyBackgroundBase::FrontTexCoordFieldMask)
//        .def_readonly("BackTexCoordFieldMask", &osg::SkyBackgroundBase::BackTexCoordFieldMask)
//        .def_readonly("MTInfluenceMask", &osg::SkyBackgroundBase::MTInfluenceMask)
        .def("getClassType", &osg::SkyBackgroundBase::getClassType, return_internal_reference< 1 >())
        .def("getClassTypeId", &osg::SkyBackgroundBase::getClassTypeId)
        .def("getType", (osg::FieldContainerType& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getType, return_internal_reference< 1 >())
        .def("getType", (const osg::FieldContainerType& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getType, return_internal_reference< 1 >())
        .def("getContainerSize", &osg::SkyBackgroundBase::getContainerSize)
        //.def("getSphereRes", (osg::UInt32& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getSphereRes, return_value_policy< copy_const_reference >())
        .def("getSphereRes", (const osg::UInt32& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getSphereRes, return_value_policy< copy_const_reference >())
        //.def("getBackTexture", (osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getBackTexture, return_value_policy< copy_const_reference >())
        .def("getBackTexture", (const osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getBackTexture, return_value_policy< copy_const_reference >())
        //.def("getBottomTexture", (osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getBottomTexture, return_value_policy< copy_const_reference >())
        .def("getBottomTexture", (const osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getBottomTexture, return_value_policy< copy_const_reference >())
        //.def("getFrontTexture", (osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getFrontTexture, return_value_policy< copy_const_reference >())
        .def("getFrontTexture", (const osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getFrontTexture, return_value_policy< copy_const_reference >())
        //.def("getLeftTexture", (osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getLeftTexture, return_value_policy< copy_const_reference >())
        .def("getLeftTexture", (const osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getLeftTexture, return_value_policy< copy_const_reference >())
        //.def("getRightTexture", (osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getRightTexture, return_value_policy< copy_const_reference >())
        .def("getRightTexture", (const osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getRightTexture, return_value_policy< copy_const_reference >())
        //.def("getTopTexture", (osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getTopTexture, return_value_policy< copy_const_reference >())
        .def("getTopTexture", (const osg::TextureChunkPtr& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getTopTexture, return_value_policy< copy_const_reference >())
        //.def("getBoxInside", (bool& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getBoxInside, return_value_policy< copy_const_reference >())
        .def("getBoxInside", (const bool& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getBoxInside, return_value_policy< copy_const_reference >())
        .def("getSkyColor", (osg::Color4f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getSkyColor, return_value_policy< copy_non_const_reference >())
        //.def("getSkyColor", (osg::MFColor4f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getSkyColor, return_value_policy< copy_const_reference >())
        .def("getSkyColor", (const osg::MFColor4f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getSkyColor, return_value_policy< copy_const_reference >())
        .def("getSkyAngle", (osg::Real32& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getSkyAngle, return_value_policy< copy_non_const_reference >())
        //.def("getSkyAngle", (osg::MFReal32& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getSkyAngle, return_value_policy< copy_const_reference >())
        .def("getSkyAngle", (const osg::MFReal32& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getSkyAngle, return_value_policy< copy_const_reference >())
        .def("getGroundColor", (osg::Color4f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getGroundColor, return_value_policy< copy_non_const_reference >())
        //.def("getGroundColor", (osg::MFColor4f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getGroundColor, return_value_policy< copy_const_reference >())
        .def("getGroundColor", (const osg::MFColor4f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getGroundColor, return_value_policy< copy_const_reference >())
        .def("getGroundAngle", (osg::Real32& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getGroundAngle, return_value_policy< copy_non_const_reference >())
        //.def("getGroundAngle", (osg::MFReal32& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getGroundAngle, return_value_policy< copy_const_reference >())
        .def("getGroundAngle", (const osg::MFReal32& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getGroundAngle, return_value_policy< copy_const_reference >())
        .def("getTopTexCoord", (osg::Vec3f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getTopTexCoord, return_value_policy< copy_non_const_reference >())
        //.def("getTopTexCoord", (osg::MFVec3f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getTopTexCoord, return_value_policy< copy_const_reference >())
        .def("getTopTexCoord", (const osg::MFVec3f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getTopTexCoord, return_value_policy< copy_const_reference >())
        .def("getBottomTexCoord", (osg::Vec3f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getBottomTexCoord, return_value_policy< copy_non_const_reference >())
        //.def("getBottomTexCoord", (osg::MFVec3f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getBottomTexCoord, return_value_policy< copy_const_reference >())
        .def("getBottomTexCoord", (const osg::MFVec3f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getBottomTexCoord, return_value_policy< copy_const_reference >())
        .def("getRightTexCoord", (osg::Vec3f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getRightTexCoord, return_value_policy< copy_non_const_reference >())
        //.def("getRightTexCoord", (osg::MFVec3f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getRightTexCoord, return_value_policy< copy_const_reference >())
        .def("getRightTexCoord", (const osg::MFVec3f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getRightTexCoord, return_value_policy< copy_const_reference >())
        .def("getLeftTexCoord", (osg::Vec3f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getLeftTexCoord, return_value_policy< copy_non_const_reference >())
        //.def("getLeftTexCoord", (osg::MFVec3f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getLeftTexCoord, return_value_policy< copy_const_reference >())
        .def("getLeftTexCoord", (const osg::MFVec3f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getLeftTexCoord, return_value_policy< copy_const_reference >())
        .def("getFrontTexCoord", (osg::Vec3f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getFrontTexCoord, return_value_policy< copy_non_const_reference >())
        //.def("getFrontTexCoord", (osg::MFVec3f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getFrontTexCoord, return_value_policy< copy_const_reference >())
        .def("getFrontTexCoord", (const osg::MFVec3f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getFrontTexCoord, return_value_policy< copy_const_reference >())
        .def("getBackTexCoord", (osg::Vec3f& (osg::SkyBackgroundBase::*)(const osg::UInt32) )&osg::SkyBackgroundBase::getBackTexCoord, return_value_policy< copy_non_const_reference >())
        //.def("getBackTexCoord", (osg::MFVec3f& (osg::SkyBackgroundBase::*)() )&osg::SkyBackgroundBase::getBackTexCoord, return_value_policy< copy_const_reference >())
        .def("getBackTexCoord", (const osg::MFVec3f& (osg::SkyBackgroundBase::*)() const)&osg::SkyBackgroundBase::getBackTexCoord, return_value_policy< copy_const_reference >())
        .def("setSphereRes", &osg::SkyBackgroundBase::setSphereRes)
        .def("setBackTexture", &osg::SkyBackgroundBase::setBackTexture)
        .def("setBottomTexture", &osg::SkyBackgroundBase::setBottomTexture)
        .def("setFrontTexture", &osg::SkyBackgroundBase::setFrontTexture)
        .def("setLeftTexture", &osg::SkyBackgroundBase::setLeftTexture)
        .def("setRightTexture", &osg::SkyBackgroundBase::setRightTexture)
        .def("setTopTexture", &osg::SkyBackgroundBase::setTopTexture)
        .def("setBoxInside", &osg::SkyBackgroundBase::setBoxInside)
        .def("getBinSize", &osg::SkyBackgroundBase::getBinSize)
        .def("copyToBin", &osg::SkyBackgroundBase::copyToBin)
        .def("copyFromBin", &osg::SkyBackgroundBase::copyFromBin)
        .def("create", &osg::SkyBackgroundBase::create)
        .def("createEmpty", &osg::SkyBackgroundBase::createEmpty)
        .def("shallowCopy", &osg::SkyBackgroundBase::shallowCopy)
        .staticmethod("getClassType")
        .staticmethod("create")
        .staticmethod("createEmpty")
        .staticmethod("getClassTypeId")
    );

    scope().attr("TopTexCoordFieldId") = (int)osg::SkyBackgroundBase::TopTexCoordFieldId;
    scope().attr("GroundAngleFieldId") = (int)osg::SkyBackgroundBase::GroundAngleFieldId;
    scope().attr("GroundColorFieldId") = (int)osg::SkyBackgroundBase::GroundColorFieldId;
    scope().attr("SkyAngleFieldId") = (int)osg::SkyBackgroundBase::SkyAngleFieldId;
    scope().attr("FrontTextureFieldId") = (int)osg::SkyBackgroundBase::FrontTextureFieldId;
    scope().attr("LeftTexCoordFieldId") = (int)osg::SkyBackgroundBase::LeftTexCoordFieldId;
    scope().attr("NextFieldId") = (int)osg::SkyBackgroundBase::NextFieldId;
    scope().attr("BoxInsideFieldId") = (int)osg::SkyBackgroundBase::BoxInsideFieldId;
    scope().attr("BottomTextureFieldId") = (int)osg::SkyBackgroundBase::BottomTextureFieldId;
    scope().attr("TopTextureFieldId") = (int)osg::SkyBackgroundBase::TopTextureFieldId;
    scope().attr("BackTexCoordFieldId") = (int)osg::SkyBackgroundBase::BackTexCoordFieldId;
    scope().attr("BackTextureFieldId") = (int)osg::SkyBackgroundBase::BackTextureFieldId;
    scope().attr("SkyColorFieldId") = (int)osg::SkyBackgroundBase::SkyColorFieldId;
    scope().attr("LeftTextureFieldId") = (int)osg::SkyBackgroundBase::LeftTextureFieldId;
    scope().attr("SphereResFieldId") = (int)osg::SkyBackgroundBase::SphereResFieldId;
    scope().attr("RightTexCoordFieldId") = (int)osg::SkyBackgroundBase::RightTexCoordFieldId;
    scope().attr("FrontTexCoordFieldId") = (int)osg::SkyBackgroundBase::FrontTexCoordFieldId;
    scope().attr("RightTextureFieldId") = (int)osg::SkyBackgroundBase::RightTextureFieldId;
    scope().attr("BottomTexCoordFieldId") = (int)osg::SkyBackgroundBase::BottomTexCoordFieldId;

    delete osg_SkyBackgroundBase_scope;

    class_< osg::SkyBackground, bases< osg::SkyBackgroundBase > , boost::noncopyable, osg::SkyBackgroundRefPtr >("SkyBackground", no_init)
        .def("changed", &osg::SkyBackground::changed)
        .def("clear", &osg::SkyBackground::clear)
        .def("dump", &osg::SkyBackground::dump, osg_SkyBackground_dump_overloads_0_2())
    ;


    register_ptr_to_python<osg::SkyBackgroundPtr>();
    implicitly_convertible<osg::SkyBackgroundRefPtr, osg::SkyBackgroundPtr>();
    implicitly_convertible<osg::SkyBackgroundPtr, osg::BackgroundPtr>();
    
    def("RefPtr", &pyopensg::ToRefPtr<osg::SkyBackgroundPtr>);
    def("FCPtr", &pyopensg::ToFcPtr<osg::SkyBackgroundPtr>);
}

